package one.stand.service;

import one.stand.model.ResultModel;
import one.stand.request.*;
import one.stand.response.BusinessCardResponse;
import one.stand.response.CompanyRecruitResponse;
import one.stand.response.CompanyResponse;
import one.stand.response.DynamicResponse;

import java.util.List;
import java.util.Map;

/**
 * @author Administrator
 */
public interface CompanyService {
    /**
     * 创建公司
     *
     * @param request
     * @return
     */
    ResultModel<Boolean> addCompany(CompanyRequest request);


    /**
     * 修改公司
     *
     * @param request
     * @return
     */
    ResultModel<Boolean> updCompany(CompanyRequest request);

    /**
     * 企业邀请
     *
     * @param request
     * @return
     */
    ResultModel<CompanyResponse> invitation(CompanyRequest request);

    /**
     *
     * 获取公司信息
     * @param request
     * @return
     */
    ResultModel<CompanyResponse> getCompany(CompanyRequest request);
    ResultModel<CompanyResponse> getCompanyId(CompanyRequest request);

    /**
     * 查询公司信息
     */
    ResultModel getCompanyAllInfo(CompanyRequest request);

    /**
     * 查询公司动态/文章
     *
     * @param request
     * @return
     */
    ResultModel<List<DynamicResponse>> selectDynamicInfo(DynamicRequest request);

    /**
     * 查询公司动态/文章详细信息
     *
     * @param request
     * @return
     */
    ResultModel<List<DynamicResponse>> getDynamicInfo(DynamicRequest request);

    /**
     * 查询所有评论/文章详细信息
     *
     * @param request
     * @return
     */
    ResultModel selectComment(CommentRequest request);

    /**
     * 添加/修改公司动态/文章
     *
     * @param request
     * @return
     */
    ResultModel addDynamicInfo(DynamicRequest request);

    /**
     * 用户评论/回复
     *
     * @param request
     * @return
     */
    ResultModel doComment(CommentRequest request);

    /**
     * 用户删除评论
     *
     * @param request
     * @return
     */
    ResultModel delComment(CommentRequest request);

    /**
     * 删除公司动态/文章
     *
     * @param request
     * @return
     */
    ResultModel delDynamicInfo(DynamicRequest request);

    /**
     * 查询公司官网信息
     *
     * @param request
     * @return
     */
    ResultModel selectWebsiteInfo(WebsiteRequest request);

    /**
     * 查询公司官网表单提交信息
     *
     * @param request
     * @return
     */
    ResultModel selectDemand(DemandRequest request);

    /**
     * 添加/修改公司官网信息
     *
     * @param request
     * @return
     */
    ResultModel addWebsiteInfo(WebsiteRequest request);

    /**
     * 添加/修改公司視頻
     *
     * @param request
     * @return
     */
    ResultModel<Boolean> insertCompanyVideo(CompanyVideoRequest request);

    /**
     * 添加/修改全部公司視頻
     *
     * @param request
     * @return
     */
    ResultModel<Boolean> moveCompanyVideo(CompanyVideoRequest request);

    /**
     * 删除公司視頻
     *
     * @param request
     * @return
     */
    ResultModel<Boolean> delCompanyVideo(CompanyVideoRequest request);

    /**
     * 查询公司招聘信息
     *
     * @param request
     * @return
     */
    ResultModel<List<CompanyRecruitResponse>> selectCompanyRecruit(CompanyRecruitRequest request);

    /**
     * 添加/修改公司招聘信息
     *
     * @param request
     * @return
     */
    ResultModel addCompanyRecruit(CompanyRecruitRequest request);

    /**
     * 添加招聘HR电话
     *
     * @param request
     * @return
     */
    ResultModel addHrPhone(CompanyRequest request);

    /**
     * 删除公司招聘信息
     *
     * @param request
     * @return
     */
    ResultModel delCompanyRecruit(CompanyRecruitRequest request);

    ResultModel<String> payment(CompanyAccountRequest request);

    String backPayMent(String request);

    /**
     * 企业转移
     * @return
     */
    ResultModel<Boolean> companyTransfer(CompanyRequest request);

    /**
     * 查询代理商企业下公司的信息
     * @return
     */
    ResultModel<Map<String, Object>> selectAgentCompanyList(CompanyRequest request);

    /**
     * 查询企业信息
     * @return
     */
    ResultModel<CompanyResponse> getCompanyInfo(CompanyRequest request);


    /**
     * 加入企业海报
     * @param request
     * @return
     */
    ResultModel<String> invitePoster(CompanyRequest request);
}
